Evolving Object - Oriented Designs with Refactorings Lance
نویسنده
چکیده
Refactorings are behavior-preserving program transformations that automate design level changes in object-oriented applications. Our previous research established that many schema transformations, design patterns, and hot-spot meta-patterns are automatable. This research evaluates whether refactoring technology can be transferred to the mainstream by restructuring non-trivial C++ applications. The applications that we examine were evolved manually by software engineers. We show that an equivalent evolution could be reproduced significantly faster and cheaper by applying a handful of general-purpose refactor-ings. In one application, over 14K lines of code were transformed automatically that otherwise would have been coded by hand. Our experiments identify benefits, limitations , and topics of further research related to the transfer of refactoring technology to a production environment.
منابع مشابه
Automating Three Modes of Evolution for Object-Oriented Software Architectures
1 Architectural evolution is a costly yet unavoidable consequence of a successful application. One method for reducing cost is to automate aspects of the evolutionary cycle when possible. Three kinds of architectural evolution in object-oriented systems are: schema transformations, the introduction of design pattern microarchitectures, and the hot-spot-drivenapproach. This paper shows that all ...
متن کاملEvolving Object - Oriented Applications with Refactorings
Refactorings are behavior-preserving program transformations that automate design level changes in object-oriented applications. Many schema transformations, design patterns, and hot-spot meta-patterns are automatable. Thus, it seems possible to develop practical tools that could significantly simplify the evolution of object-oriented applications by automating common, yet tedious and error-pro...
متن کامل4 Related Work
The limiting factor barring the widespread acceptance of refactoring technology appears to be the availability of production quality refactorings for the two most popular object-oriented languages: C++ and Java. Our current research is focused on addressing the implementation issues identified for C++ in [Tok98]. Griswold developed behavior-preserving transformations for structured programs wri...
متن کاملTool Support for Refactoring Duplicated OO Code
Code duplication is an important problem in application maintenance. Tools exist that support code duplication detection. However, few of them propose a solution for the problem, i.e. refactorings. We propose an approach that uses the information given by code duplication detection to guide the refactorings of OO applications. 1 Code Duplication and Refactorings: Two Poles of a Magnet Code dupl...
متن کاملRefactoring Functional Programs
Refactoring is about improving the design of existing code and as such it must be familiar to every programmer, software engineer and designer. Its key characteristic is the focus on structural changes, strictly separated from changes in functionality: Before changing the functionality of a software system, it is often necessary to restructure it to make it more amenable to change. After establ...
متن کامل